/*
 * Tapioca library
 * Copyright (C) 2007 INdT
 * @author  Marcelo Lira dos Santos <setanta@gmail.com>
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 */

using GLib;

namespace Tpa {

    /* Connection status */
    public enum ConnectionStatus {
        CONNECTED = 0,
        CONNECTING = 1,
        DISCONNECTED = 2,
        LAST = DISCONNECTED
    }


    /* Connection status reason */
    public enum ConnectionStatusReason {
        NONE_SPECIFIED = 0,
        REQUESTED,
        NETWORK_ERROR,
        AUTHENTICATION_FAILED,
        ENCRYPTION_ERROR,
        NAME_IN_USE,
        CERT_NOT_PROVIDED,
        CERT_UNTRUSTED,
        CERT_EXPIRED,
        CERT_NOT_ACTIVATED,
        CERT_HOSTNAME_MISMATCH,
        CERT_FINGERPRINT_MISMATCH,
        CERT_SELF_SIGNED,
        CERT_OTHER_ERROR,
        LAST = CERT_OTHER_ERROR
    }

    /* Connection presence types */
    public enum ConnectionPresenceType {
        OFFLINE = 1,
        AVAILABLE,
        AWAY,
        EXTENDED_AWAY,
        HIDDEN,
        LAST = HIDDEN
    }

    /* Handle types */
    public enum ConnectionHandleType {
        NONE = 0,
        CONTACT,
        ROOM,
        LIST,
        LAST = LIST
    }

    /* Channel types */
    public enum ChannelType {
        CONTACTLIST = 0,
        CONTACTSEARCH,
        STREAMEDMEDIA,
        ROOMLIST,
        TEXT,
        LAST = TEXT
    }


    /* Channel Text Message Types */
    public enum TextChannelMessageType {
        NORMAL = 0,
        ACTION,
        NOTICE,
        AUTO_REPLY,
        LAST = AUTO_REPLY
    }

    /* Channel Group flags */
    public enum ChannelGroupFlags {
        CAN_ADD = 1,
        CAN_REMOVE = 2,
        CAN_RESCIND = 4,
        MESSAGE_ADD = 8,
        MESSAGE_REMOVE = 16,
        MESSAGE_ACCEPT = 32,
        MESSAGE_REJECT = 64,
        MESSAGE_RESCIND = 128,
        CHANNEL_SPECIFIC_HANDLES = 256,
        LAST = CHANNEL_SPECIFIC_HANDLES
    }

    /* Channel Group change reason */
    public enum ChannelGroupChangeReasons {
        NONE = 0,
        OFFLINE,
        KICKED,
        BUSY,
        INVITED,
        BANNED,
        LAST = BANNED
    }

}
